Appearance
mongodb 的数据库中的一种,是面向文档存储的数据库;
他的概念和关系型数据有些区别。
跟 MySQL 类似,他能够执行 CRUD,事务,索引 等操作。
在技术选型的时候,对于高并发、海量数据读写、高可用、搞可扩展有需求,数据量大,写入频率,价值较低,对事务性要求不高的时候,可以考虑使用 MongoDB来实现数据的存储。
体系结构
- database collectino document field index

什么是 MongoDB

使用示例
在Spring Boot应用中集成MongoDB来进行数据的CRUD操作
首先,在你的pom.xml文件中添加Spring Boot的Starter Data MongoDB依赖。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<!-- 添加Spring Boot的Web支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>在application.properties或application.yml配置文件中配置MongoDB的连接信息。
# application.properties
spring.data.mongodb.uri=mongodb://yourUsername:yourPassword@localhost:27017/yourDatabase或者使用YAML格式:
# application.yml
spring:
data:
mongodb:
uri: mongodb://yourUsername:yourPassword@localhost:27017/yourDatabase创建实体类
定义一个MongoDB的文档类。
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document
public class User {
@Id
private String id;
private String name;
private Integer age;
// 省略构造函数、Getter和Setter方法
}创建一个继承MongoRepository的接口用于数据访问。
import org.springframework.data.mongodb.repository.MongoRepository;
public interface UserRepository extends MongoRepository<User, String> {
// 这里可以定义一些根据字段查询的方法,Spring Data会自动实现
}创建一个REST控制器来处理HTTP请求。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserRepository userRepository;
@PostMapping
public User addUser(@RequestBody User user) {
return userRepository.save(user);
}
@GetMapping
public List<User> getUsers() {
return userRepository.findAll();
}
@GetMapping("/{id}")
public User getUserById(@PathVariable String id) {
return userRepository.findById(id).orElse(null);
}
@PutMapping("/{id}")
public User updateUser(@PathVariable String id, @RequestBody User updatedUser) {
updatedUser.setId(id);
return userRepository.save(updatedUser);
}
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable String id) {
userRepository.deleteById(id);
}
}Docker 方式安装 MongoDB
参考: https://blog.csdn.net/li_wen_jin/article/details/133639954
拉取镜像
docker pull mongo:latest挂载目录
mkdir -p /mydata/mongo/config
mkdir -p /mydata/mongo/data
mkdir -p /mydata/mongo/logs
touch /mydata/mongo/config/mongod.conf
chmod 777 /mydata/mongo配置文件内容 mongod.conf
# 数据库存储路径
dbpath=/mydata/mongo/data
# 日志文件路径
logpath=/mydata/mongo/logs/mongod.log
# 监听的端口
port=27017
# 允许所有的 IP 地址连接
bind_ip=0.0.0.0
# 启用日志记录
journal=true
# 是否后台运行
fork=true
# 启用身份验证
#auth=true运行容器
docker run -dit --name mongo \
-p 27017:27017 \
-v /mydata/mongo/config/mongod.conf:/etc/mongod.conf \
-v /mydata/mongo/data:/data/db \
-v /mydata/mongo/logs:/var/log/mongodb \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=wz65432 \
--restart=always \
mongo参考